﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Web.UI.WebControls;
using System.Drawing;

namespace Service
{
    public class Validaciones
    {
        public static bool validarSubidaDeImagen(FileUpload fuMiCuentaImagen, Label lblError)
        {
            bool estaOk = false;

            string extension = Path.GetExtension(fuMiCuentaImagen.FileName);
            int peso = fuMiCuentaImagen.PostedFile.ContentLength;

            MemoryStream str = new MemoryStream(fuMiCuentaImagen.FileBytes);
            System.Drawing.Image bmp = System.Drawing.Image.FromStream(str);

            //validacion de extensiones
            if (fuMiCuentaImagen.HasFile)
            {
                if (extension != ".jpg" && extension != ".png" && extension != ".jpeg")
                {
                    lblError.Text = "La imagen debe ser .jpg o .png.";
                }
            }

            //validacion de peso, maximo 20 kb
            //if (peso > 20480)
            //{
            //    lblError.Text = "Solo se permiten imagenes de hasta 20 KB.";
            //}

            //validacion de tamaño
            if (bmp.Width > 200 || bmp.Height > 200)
            {
                lblError.Text = "El tamaño de la imagen deberá ser de hasta 200x200 px";
            }

            if(lblError.Text == ""){
                estaOk = true;
            }

            return estaOk;
        }

        public static string convertirImagenToString(string path)
        {

            System.Drawing.Image im;
            MemoryStream ms;

            try
            {
                if (path == null)
                {
                    throw new ArgumentNullException("path");
                }
                else
                {
                    im = System.Drawing.Image.FromFile(path);
                    ms = new MemoryStream();

                    im.Save(ms, im.RawFormat);
                    byte[] array = ms.ToArray();

                    return Convert.ToBase64String(array);
                }
            }
            catch (Exception e)
            {
                throw e;
            }            
        }

        public static System.Drawing.Image StringToImage(string imageString)
        {
            System.Drawing.Image image;

            if (imageString == null)
            {
                throw new ArgumentNullException("imageString");
            }
            else
            {
                byte[] array = Convert.FromBase64String(imageString);

                image = System.Drawing.Image.FromStream(new MemoryStream(array));

                return image;
            }
        }


    }
}
